home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
-
- Authors: Marco Barisione, Emanuele Aina, Paolo Borelli
- Copyright (C) 2005-2007 Marco Barisione <barisione@gmail.com>
- Copyright (C) 2005-2007 Emanuele Aina
- Copyright (C) 2007 Paolo Borelli
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- -->
- <language id="xml" _name="XML" version="2.0" _section="Markup">
- <metadata>
- <property name="mimetypes">application/xml;text/xml</property>
- <property name="globs">*.xml;*.xspf;*.siv;*.smil;*.smi;*.sml;*.kino;*.xul;*.xbel;*.abw;*.zabw;*.glade;*.jnlp;*.xhtml;*.svg;*.mml;*.rdf;*.rss;*.wml;*.xmi;*.fo;*.xslfo;*.xslt;*.xsl</property>
- <property name="block-comment-start"><!--</property>
- <property name="block-comment-end">--></property>
- </metadata>
-
- <styles>
- <style id="comment" _name="Comment" map-to="def:comment"/>
- <style id="doctype" _name="DOCTYPE" map-to="def:preprocessor"/>
- <style id="cdata-delim" _name="CDATA delimiter" map-to="def:preprocessor"/>
- <style id="processing-instruction" _name="Processing instruction" map-to="def:preprocessor"/>
- <style id="element-name" _name="Element name" map-to="def:identifier"/>
- <style id="attribute-name" _name="Attribute name" map-to="def:type"/>
- <style id="attribute-value" _name="Attribute value" map-to="def:string"/>
- <style id="entity" _name="Entity" map-to="def:preprocessor"/>
- <style id="tag" _name="Tag"/>
- <style id="namespace" _name="Namespace" map-to="xml:element-name"/>
- <style id="error" _name="Error" map-to="def:error"/>
- </styles>
-
- <definitions>
- <define-regex id="prefix">[a-zA-Z_][a-zA-Z0-9._-]*</define-regex>
-
- <define-regex id="name">[a-zA-Z_][a-zA-Z0-9.:_-]*</define-regex>
-
- <context id="entity" style-ref="entity">
- <match>&\%{name};</match>
- </context>
-
- <context id="character-reference" style-ref="entity">
- <match>&#([0-9]+|x[a-fA-F0-9]+);</match>
- </context>
-
- <context id="unallowed-chars" style-ref="error" extend-parent="false">
- <match>[&<]</match>
- </context>
-
- <context id="comment" style-ref="comment">
- <start><!--</start>
- <end>--></end>
- <include>
- <context style-ref="error" extend-parent="false">
- <match>--+</match>
- </context>
- <context ref="def:in-comment"/>
- </include>
- </context>
-
- <context id="doctype">
- <start>(<!DOCTYPE)\s+(\%{name})</start>
- <end>></end>
- <include>
- <context sub-pattern="1" where="start" style-ref="doctype"/>
- <context sub-pattern="2" where="start" style-ref="doctype"/>
- <context sub-pattern="0" where="end" style-ref="doctype"/>
- <context>
- <match>(SYSTEM)\s+(\"[^\"]*\")</match>
- <include>
- <context sub-pattern="1" style-ref="doctype"/>
- <context sub-pattern="2" style-ref="attribute-value"/>
- </include>
- </context>
- <context>
- <match>(PUBLIC)\s+(\"[^\"]*\")\s+(\"[^\"]*\")</match>
- <include>
- <context sub-pattern="1" style-ref="doctype"/>
- <context sub-pattern="2" style-ref="attribute-value"/>
- <context sub-pattern="3" style-ref="attribute-value"/>
- </include>
- </context>
- <context>
- <start>\[</start>
- <end>\]</end>
- <include>
- <context sub-pattern="0" where="start" style-ref="doctype"/>
- <context sub-pattern="0" where="end" style-ref="doctype"/>
- <context ref="dtd:dtd"/>
- </include>
- </context>
- </include>
- </context>
-
- <context id="cdata">
- <start><!\[CDATA\[</start>
- <end>\]\]></end>
- <include>
- <context sub-pattern="0" where="start" style-ref="cdata-delim"/>
- <context sub-pattern="0" where="end" style-ref="cdata-delim"/>
- </include>
- </context>
-
- <context id="processing-instruction" style-ref="processing-instruction">
- <start><\?</start>
- <end>\?></end>
- </context>
-
- <!-- The following three contexts can be <replace>d in xml
- dialect lang files, to custommize highlighting, e.g.
- highlighting docbook tags as keywords -->
-
- <context id="namespace" style-ref="namespace">
- <match>(?<!:)\%{prefix}:</match>
- </context>
-
- <!-- Match attribute-name before element-name otherwise
- "text" in <fo:block text-align="left"> is detected as
- element -->
- <context id="attribute-name" style-ref="attribute-name">
- <match>\b\%{name}\s*=</match>
- </context>
-
- <context id="attribute-value" style-ref="attribute-value">
- <start>["']</start>
- <end>\%{0@start}</end>
- <include>
- <context ref="entity"/>
- <context ref="character-reference"/>
- <context ref="unallowed-chars"/>
- </include>
- </context>
-
- <context id="element-name" once-only="true" style-ref="element-name">
- <match>\b\%{name}\b(?!\s*=)</match>
- </context>
-
- <context id="prolog">
- <start><\?xml</start>
- <end>\?></end>
- <include>
- <context sub-pattern="0" where="start" style-ref="processing-instruction"/>
- <context sub-pattern="0" where="end" style-ref="processing-instruction"/>
- <context ref="attribute-value"/>
- <context ref="attribute-name"/>
- </include>
- </context>
-
- <context id="start-tag" style-ref="tag">
- <start><(?!/)</start>
- <end>/?></end>
- <include>
- <context sub-pattern="0" where="start" style-ref="element-name"/>
- <context sub-pattern="0" where="end" style-ref="element-name"/>
- <context ref="entity"/>
- <context ref="character-reference"/>
- <context ref="unallowed-chars"/>
- <context ref="namespace"/>
- <context ref="attribute-name"/>
- <context ref="attribute-value"/>
- <context ref="element-name"/>
- <context style-ref="error" extend-parent="false">
- <match>\S</match>
- </context>
- </include>
- </context>
-
- <context id="end-tag" style-ref="tag">
- <start></</start>
- <end>></end>
- <include>
- <context sub-pattern="0" where="start" style-ref="element-name"/>
- <context sub-pattern="0" where="end" style-ref="element-name"/>
- <context ref="entity"/>
- <context ref="character-reference"/>
- <context ref="unallowed-chars"/>
- <context ref="namespace"/>
- <context ref="element-name"/>
- <context style-ref="error" extend-parent="false">
- <match>\S</match>
- </context>
- </include>
- </context>
-
- <context id="close-tag-outside-tag" style-ref="error">
- <match>/></match>
- </context>
-
- <context id="xml">
- <include>
- <context ref="comment"/>
- <context ref="doctype"/>
- <context ref="cdata"/>
- <context ref="prolog"/>
- <context ref="processing-instruction"/>
- <context ref="start-tag"/>
- <context ref="end-tag"/>
- <context ref="entity"/>
- <context ref="character-reference"/>
- <context ref="unallowed-chars"/>
- <context ref="close-tag-outside-tag"/>
- </include>
- </context>
- </definitions>
- </language>
-